/**
 * @projectName leetode
 * @package cn.leetcode
 * @className cn.leetcode.t257
 * @copyright Copyright 2020 Thunisoft, Inc All rights reserved.
 */
package cn.leetcode;

import java.util.ArrayList;
import java.util.List;

/**
 * t257
 * @description
 * @author fei
 * @date 2025/9/10 16:13
 * @version 1.0
 */
/*
给你一个二叉树的根节点 root ，按 任意顺序 ，返回所有从根节点到叶子节点的路径。

叶子节点 是指没有子节点的节点。


示例 1：


输入：root = [1,2,3,null,5]
输出：["1->2->5","1->3"]
示例 2：

输入：root = [1]
输出：["1"]
 */
public class t257 {
    public List<String> binaryTreePaths(TreeNode root) {
        List<String> ans = new ArrayList<>();
        dfs(root, "", ans);
        return ans;
    }
    public void dfs(TreeNode root,String path, List<String> ans){
        if (root == null){
            return;
        }
        path+=root.val;
        if (root.left == null && root.right == null){
            ans.add(path);
            return;
        }
        path+="->";
        dfs(root.left, path, ans);
        dfs(root.right, path, ans);
    }
}
